package com.xjscrm.console.chat.frame.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.LinkedList;
import java.util.List;

/**
 * 聊天回话(ChatTalkSession)表DTO
 *
 * @author szl
 * @since 2024-03-12 14:49:38
 */
@Data
@ApiModel("聊天回话 DTO对象")
public class ChatSessionDTO {

    @ApiModelProperty("主键id")
    private Long id;

    @ApiModelProperty("回话关联id, 可以是客户id或群聊id")
    private Long relId;

    @ApiModelProperty("运营商")
    private Long merId;

    @ApiModelProperty("机器人id")
    private Long deviceUniqueId;

    @ApiModelProperty("机器人wxId")
    private String deviceId;

    @ApiModelProperty("机器人名称")
    private String deviceName;

    @ApiModelProperty("机器人类型")
    private Integer deviceType;

    @ApiModelProperty("回话id. 可为单聊或群聊微信id")
    private String conversationId;

    @ApiModelProperty("回话名称, 私聊为好友名称, 群聊为群名")
    private String conversationName;

    @ApiModelProperty("回话头像")
    private String conversationAvatar;

    @ApiModelProperty("回话备注")
    private String conversationRemark;

    @ApiModelProperty("会话类型. 110:单聊, 111:群聊")
    private Integer type;

    @ApiModelProperty("最后一条聊天记录")
    private Long lastRecvId;

    @ApiModelProperty("最后接收消息时间")
    private Integer lastRecvTime;

    @ApiModelProperty("是否超时. 0:未超时, 1:超时")
    private Integer expire;

    @ApiModelProperty("会话超时时间")
    private Integer expireTime;

    @ApiModelProperty("会话展示超时时间")
    private Integer showExpireTime;

    @ApiModelProperty("是否结束. 0:未结束, 1:结束")
    private Integer end;

    @ApiModelProperty("会话结束时间")
    private Integer endTime;

    @ApiModelProperty("开启置顶, 0:关闭,1:打开")
    private Integer openPinTop;

    @ApiModelProperty("开启置顶时间")
    private Integer openPinTopTime;

    @ApiModelProperty("开启免打扰, 0:关闭,1:打开")
    private Integer openSilence;

    @ApiModelProperty("开启免打扰时间")
    private Integer openSilenceTime;

    @ApiModelProperty("开启屏蔽, 0:关闭,1:打开")
    private Integer openShield;

    @ApiModelProperty("开启屏蔽时间")
    private Integer openShieldTime;

    @ApiModelProperty("是否正在聊天, 0:否,1:是")
    private Integer chat;

    @ApiModelProperty("最后一条聊天记录对象")
    private ChatRecordDTO lastTalkRecord;

    @ApiModelProperty("未读消息数")
    private Integer noReadCount;

    @ApiModelProperty("企业标签id集合")
    private List<Long> companyTagIds = new LinkedList<>();

    @ApiModelProperty("个人标签id集合")
    private List<Long> selfTagIds = new LinkedList<>();

    @ApiModelProperty("最后一次已读时间")
    private Integer lastReadTime;

    @ApiModelProperty("是否挂起会话, 0: 未挂起, 1: 已挂起")
    private Integer hang;

    @ApiModelProperty("是否是转接会话, 0: 否, 1: 是")
    private Integer transfer;

    @ApiModelProperty("是否是自动接入. 0: 否, 1: 是")
    private Integer auto;
}

